package com.candy.IO;

import java.io.*;

public class Test06 {
    public static void main(String[] args) {
        test03();
    }

    /**
     * 方法描述：缓冲流：使用输入流读取一个文件内容到cpu中，然后使用输出流将内容写出到指定的外部文件中
     */
    public static void test03() {
        //创建一个输入流对象
        try (BufferedReader is =
                     new BufferedReader(
                new InputStreamReader(
                        new FileInputStream("D:\\青软实训网课\\java\\0720test文件\\java0720\\nsdJava\\candy.txt")));
             //创建一个输出流对象  资源需关闭
             //第二个参数 默认值是false:从头开始覆盖写
             //true:从末尾接着写
             BufferedWriter os=new BufferedWriter(
                     new OutputStreamWriter(
                             new FileOutputStream("D:\\青软实训网课\\java\\0720test文件\\java0720\\nsdJava\\candy03.txt",true)));)
        {
            //信息读取一整行
            String strMsg=is.readLine();
            //内容不为空继续读取，直到内容为空
            while (strMsg!=null){
                //将读入的文件内容谢茹文件
                os.write(strMsg);
                //换行
//                os.newLine();
                os.write("\n");
                System.out.println("ok");
                //继续读
                strMsg=is.readLine();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 方法描述：字符流：使用输入流读取一个文件内容到cpu中，然后使用输出流将内容写出到指定的外部文件中
     */
    public static void test02() {
        //创建一个输入流对象
        try (Reader is = new FileReader("D:\\青软实训网课\\java\\0720test文件\\java0720\\nsdJava\\candy.txt");
             //创建一个输出流对象  资源需关闭
             //第二个参数 默认值是false:从头开始覆盖写
             //true:从末尾接着写
             Writer os=new FileWriter("D:\\青软实训网课\\java\\0720test文件\\java0720\\nsdJava\\candy02.txt",true);)
        {
            //用于读取字节流的字节数组
            char[] b=new char[1024];
            //将输入流中的内容读取到用于存储的字节数组中
            int len=is.read(b,0,1024);
            while (len!=-1){
                //使用输出流进行文件内容复制
                os.write(b,0,len);
                System.out.println("ok");
                //继续往下读
                len=is.read(b);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 方法描述：字节流：使用输入流读取一个文件内容到cpu中，然后使用输出流将内容写出到指定的外部文件中
     */
    public static void test01() {
        //创建一个输入流对象
        try (InputStream is = new FileInputStream("D:\\青软实训网课\\java\\0720test文件\\java0720\\nsdJava\\candy.txt");
             //创建一个输出流对象  资源需关闭
             //第二个参数 默认值是false:从头开始覆盖写
             //true:从末尾接着写
             OutputStream os=new FileOutputStream("D:\\青软实训网课\\java\\0720test文件\\java0720\\nsdJava\\candy01.txt",true);)
        {
            //用于读取字节流的字节数组
            byte[] b=new byte[1024];
            //将输入流中的内容读取到用于存储的字节数组中
            int len=is.read(b,0,1024);
            while (len!=-1){
                //使用输出流进行文件内容复制
                os.write(b,0,len);
                System.out.println("ok");
                //继续往下读
                len=is.read(b);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
